编者按
该指南分享了提高 ChatGPT 模型表现的重要策略和技巧,并提供翔实的案例便于新入门的朋友理解
这里描述的策略和技巧有时可以组合使用以达到更好的效果
建议您使用 GPT-4 上对相关策略和技巧进行尝试,愿您发掘出您需要的使用方案
本文主要参考 Openai 官方文档以及@熊猫JAY的万字解读ChatGPT提示词最佳案例
在我们给到您的最佳实践案例中,和 GPT 的对话会涉及到三种角色,一般分为,
USER 就是您本人
ASSISTANT 是 GPT
SYSTEM 是系统,正常情况不出现
大多数情况下,在对话框里您只会看到 USER 和 ASSISTANT 在 balabala...

学习指南
首先逐步了解每个策略
形成对策略的初步认识或疑问
带着您的认识或问题去看案例
看完案例还有疑问再请教他人
我们通过对话框和 GPT 互动,所以我们文字表达能力好坏决定了 GPT 产出的优劣
如果 GPT 回复过长,我们可以明确要求简洁答案
如果觉得答案过于基础,我们可以要求更深入、专家级的回答
如果您对输出的格式有特定要求,直接展示您想要的格式
GPT 模型对您的需求理解得越清晰,为您提供满意答案的几率就越高
请务必先掌握该部分的策略和技巧,帮您快速入门:
详细描述您的问题
描述越清晰,您得到的答案越符合您的预期
让 GPT 扮演一个角色
您给它什么身份,它就用该身份的思维定势去思考决策
用分隔符区分不同的输入内容
更方便 GPT 阅读和理解,您自己也不想看长篇累牍一坨吧...
列出任务步骤
很重要,学会让 GPT 一步接一步的干活
提供示例
您说个 123 , GPT 就照您说的 123 来输出
指定输出的长度
精确字数虽然做不到,但您可以指定文章结构、段落啥的...
适用人群:新手
难度:★
为了获得高度相关的回复,我们需要提供任何重要的细节或上下文,否则,GPT 就会猜测您的意图,从而导致结果不尽如人意。
| 不使用技巧的提问 | 使用技巧的优质提问 | 为什么后者更好 |
| Excel 中如何添加数字? | 在 Excel 中如何对一行金额自动相加?我想对整个工作表的行进行求和,总和显示在右边一列"总计"中。 | 普通问题可能会得到一个简单、笼统的答案。 优质的问题往往会得到更详细、更针对性的答案,因为您告诉了对方您的具体需求和预期。 所以,向别人提问时,尽量描述得更详细一些,这样可以帮助您获得更好的答案! |
| 谁是总统? | 2021 年墨西哥总统是谁,选举频率是多久一次? | |
| 编写计算斐波那契数列的代码。 | 用 TypeScript 编写一个函数来有效地计算斐波那契数列。对代码添加详细注释以解释每个部分的作用及编写方式。 | |
| 总结会议记录。 | 用一段话摘要会议记录。然后用 markdown 列表罗列发言人及每个人的观点。最后,列出会议记录中发言者提出的后续步骤或行动事项(若有)。 |
优质提问到底优在哪里?
详细性:优质提问 提供了更为详细的描述和需求。例如,第一组只提到了“如何将 Excel 中的数字相加求和”,而优质提问则明确指出了“在 Excel 中将一列美元金额相加”并且详细描述了求和的位置和列名。
具体性:优质提问 更为具体,它不仅仅是提出一个问题,还给出了具体的背景和要求。例如,优质提问关于斐波那契数列的问题明确要求使用 TypeScript 编写,并要求添加注释。
结构性:优质提问 的结构更为清晰,它将需求分为了多个部分。例如,关于会议纪要的问题,优质提问不仅要求总结成一个段落,还要求使用 Markdown 列表形式列出与会者的名称和观点,以及后续的行动事项。
上下文信息:优质提问 提供了更多的上下文信息,这有助于更好地理解和回答问题。例如,关于墨西哥总统的问题,优质提问明确提到了“ 2021 年”并询问选举的频率。
指导性:优质提问 更具指导性,它为回答者提供了明确的方向和期望。例如,关于编写斐波那契数列的代码,优质提问明确要求“高效计算”并“添加大量注释”。
接下来,我们直接上手在 GPT-4 进行对比测试:
不使用细节法提问——谁是总统?

使用细节法提问—— 2021 年墨西哥总统是谁,选举多久举行一次?

明显看得出,GPT 给出的回答质量有着天壤之别。
我们再举一个生活中的例子:
您去图书馆找一本书。您跟图书管理员说:“我想要一本书。”图书管理员可能会很困惑,因为图书馆里有成千上万的书。您并没有说明您想要哪一本书,关于什么内容,或者为什么目的。
而这次您跟图书管理员说:“我想找一本关于恐龙的书,因为我要写一个关于侏罗纪时期恐龙的作文。”现在,图书管理员知道您的具体需求,她可以快速地为您找到最合适的书。
这就是为什么“优质提问”更好的原因。
优质的问题通常更具体、更明确,它告诉对方您真正想要知道什么。这样,对方可以为您提供更准确、更有帮助的答案。
这个策略的价值在于,通过提供更多的详细信息,用户可以获得更准确、更具体的答案。这样可以减少模型的猜测和误解,从而提高交互的效率和满意度。
适用人群:新手
难度:★
GPT 有没有被赋予扮演的角色,生成的结果有时天差地别
接下来,我们直接上手在 GPT-4 进行对比测试:
不使用角色法提问——中医流传很多年,证明中医是有用的

使用角色法提问:
人设:逻辑教练,要在我给出的命题当中发现逻辑错误
提问:请扮演一个逻辑教练,帮我发现以下命题的逻辑错误,挑出逻辑漏洞,我的第一个命题是:中医流传很多年, 证明中医是有用的

当我们给 GPT 指定角色,模型的回答将会根据所采纳的角角色特性来进行,使得回答更具特色和针对性,输
出的质量也会随之提升。
适用人群:新手
难度:★
像三重引号、XML标记、标题等分隔符可以帮助标记需要不同方式处理的文本部分。
对于简单的任务,使用分隔符可能不会影响输出质量。然而,当任务越复杂,明确任务细节就越重要。不要让 GPT 模型费劲巴拉去理解我们到底要它什么。
怎么判断什么时候应该去分隔处理呢?
如果您自己看的都心烦意乱,容易有误解的时候,GPT 也是跟您一样“头大”的。
接下来,我们直接上手在 GPT-4 进行对比测试:
在2050年的某个未来城市,太阳能和风能发电系统成为了主要的能源供应方式。因为气候变化和海平面上升,陆地面积大幅减少,导致陆地上的房地产价格暴涨。人们转而开始建设大型的浮动岛屿作为新的居住区,这些岛屿的中心设有一座小型核反应堆作为应急电源。海洋的藻类不仅成为了人们的主要食物来源,还被用于生产生物燃料。随着这些变化,大量的人口从陆地迁移到了这些浮动岛屿。浮动岛屿的结构和材料选择需要考虑到它们在海上的稳定性。而藻类作为主食的营养价值和可能的挑战也开始受到关注。在这种新的环境下,社会和经济的结构也经历了巨大的变化。
让 GPT 对以上材料解读,不使用格式法——给我解读这个材料...

使用格式法:

对比而言,使用技巧提问的输出显得更加全面合理。
想象一下,您正在组装一款复杂的玩具,但所有的零件都混在一起,没有任何标签或说明。这会让组装过程变得非
常困难,对吧?
同样,当模型处理一个复杂的输入时,如果没有清晰的分隔符来区分不同的部分,模型可能会混淆或误解某些内
容。使用分隔符就像给玩具零件加上标签和说明,使组装过程变得更加流畅和准确。
适用人群:新手
难度:★
有些任务最好用一系列步骤来表达,因为明确写出步骤可以让模型更容易执行。
SYSTEM使用以下步骤来回应用户输入。步骤1 - 用户将用三重引号提供给您文本。用前缀"Summary:"对这段文本进行一句总结。步骤2 - 将步骤1中的总结翻译成西班牙语,并使用前缀"Translation:"。

接下来,我们直接上手在 GPT-4 进行对比测试:
不使用步骤法:

使用步骤法:

当我们提供固定的步骤,要求模型提供输出,这样模型可以参考步骤更好地输出内容。
适用人群:新手
难度:★
通常情况下,我们不需要提供示例。但在某些情况下,提供示例可能对输出更有帮助。例如,如果您打算让模型复制一种难以描述的文风。此时您给出的示例会被称为 " few-shot " 。
我们直接上手在 GPT-4 进行对比测试:
不使用举例法:

使用举例法:

如果您问 GPT 一些类似于文风的问题,模型懵醒醒不懂您要干嘛,这时候您给个示例就事半功倍啦~
适用人群:新手
难度:★
您可以要求模型生成特定目标长度的输出
目标输出长度可以以单词数、句子数、段落数、项目符号数等来指定
但是,指示模型生成特定数量的单词不能高精度实现
模型可以更可靠地生成特定段落数或项目符号数的输出
上手 GPT-4 进行对比测试:
不使用限制字数法:

使用限制字数法:

虽然 GPT 经常分不清字数,但您让它分段这种要求还是可以去尝试做一下的。
GPT 在处理某些深奥的话题或被要求提供引用和链接时,可能会编造虚假的答案。正如学生在考试前通过复习参考笔记能够更好地答题,为 GPT 提供参考资料也能帮助它更准确地回答,减少虚构内容。
技巧:
指示模型使用提供的参考文本进行回答
指示模型使用参考文本中的引文进行回答
适用人群:新手
难度:★
如果我们能为模型提供与当前查询相关的可信信息,那么我们可以指示模型使用提供的信息来组成其回答。
鉴于 GPT 模型具有有限的上下文窗口,为了应用此技巧,我们需要某种方法根据问题动态查找相关信息并添加到模型输入中。
SYSTEM使用由三重引号分隔的所提供的文章来回答问题。如果答案在文章中找不到,写下"I could not find an answer."USER<插入文章,每篇文章由三重引号分隔>问题:<插入问题>
上手 GPT-4 对比测试:
不使用指定文本法:

使用指定文本法:

最大的好处是减少错误:因为模型可能会幻觉从而发明答案,尤其是当被问及一些偏门的话题或需要引用
和URL时。通过提供参考文本,我们可以减少模型发明答案的可能能性。
适用人群:新手
难度:★
如果输入补充了相关知识,则可以轻松要求模型在答案中添加引文,引用提供文档的相关段落。输出中的引文然后可以通过与提供文档的字符串匹配来程序化验证。
SYSTEM您将得到一个由三重引号分隔的文档和一个问题。您的任务是只使用提供的文档来回答问题,并引用用来回答问题的文档段落。如果文档不包含回答此问题所需的信息,那么只需写下:“信息不足”。如果提供了问题的答案,必须用引文进行注释。使用以下格式引用相关段落 ({"citation":…})。USER"""<插入文档>"""问题:<插入问题>
上手对比测试:
不使用指定引文法:

使用指定引文法:
同上。
code/s?__biz=MzkzNDUwNDI3NQ==&mid=2247483940&idx=1&sn=dd28447adfb5ea59456f786fb1a40d72&chksm=c2bd7018f5caf90e2cab99b746ce7e9c4ad961319cd53450a19010daedf2c8689a4da9ecb5de#rd